package com.efun.center.http.annotation;

import com.efun.center.http.config.DataType;
import com.efun.center.http.handler.HttpSupport;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface HttpHandler {

    /**
     * 处理器类型
     *
     * @return
     */
    Class<? extends HttpSupport> type();

    /**
     * 请求格式
     */
    DataType contentType() default DataType.FORM;

    /**
     * 参数
     */
    String[] params() default {};

    /**
     * 超时时间
     *
     * @return
     */
    int timeout() default 0;

    /**
     * 是否异步调用
     *
     * @return
     */
    boolean async() default false;

    /**
     * 是否忽略异常
     *
     * @return
     */
    boolean ignoreErr() default false;

}
